home *** CD-ROM | disk | FTP | other *** search
/ Programmer Power Tools / Programmer Power Tools.iso / ada / tritest.ada < prev    next >
Text File  |  1988-03-25  |  3KB  |  71 lines

  1. with TEXT_IO; use TEXT_IO;
  2. procedure TRITEST is
  3.    PASSED : BOOLEAN := TRUE;
  4.    type TRIANGLE is (EQUILATERAL, ISOSCELES, SCALENE, NOT_A_TRIANGLE);
  5.    function TRITYPE(LEN1, LEN2, LEN3 : in INTEGER) return TRIANGLE
  6.                                                           is separate;
  7.    procedure COMPARE(A, B, C: in INTEGER; RIGHT_ANSWER : in TRIANGLE)
  8.                                                           is separate;
  9. begin
  10.    COMPARE( 3,  4,  5, SCALENE);
  11.    COMPARE( 6,  3,  4, SCALENE);
  12.    COMPARE( 4,  3,  6, SCALENE);
  13.    COMPARE( 3,  3,  3, EQUILATERAL);
  14.    COMPARE( 3,  3,  4, ISOSCELES);
  15.    COMPARE( 3,  4,  3, ISOSCELES);
  16.    COMPARE( 4,  3,  3, ISOSCELES);
  17.    COMPARE( 7,  7,  4, ISOSCELES);
  18.    COMPARE( 7,  4,  7, ISOSCELES);
  19.    COMPARE( 4,  7,  7, ISOSCELES);
  20.    COMPARE( 1,  1,  1, EQUILATERAL);
  21.    COMPARE( 0,  4,  4, NOT_A_TRIANGLE);
  22.    COMPARE( 4,  0,  4, NOT_A_TRIANGLE);
  23.    COMPARE( 4,  4,  0, NOT_A_TRIANGLE);
  24.    COMPARE( 0,  4,  3, NOT_A_TRIANGLE);
  25.    COMPARE( 3,  0,  4, NOT_A_TRIANGLE);
  26.    COMPARE( 4,  3,  0, NOT_A_TRIANGLE);
  27.    COMPARE(-1,  4,  4, NOT_A_TRIANGLE);
  28.    COMPARE( 4, -1,  4, NOT_A_TRIANGLE);
  29.    COMPARE( 4,  4, -1, NOT_A_TRIANGLE);
  30.    COMPARE(-1,  4,  3, NOT_A_TRIANGLE);
  31.    COMPARE( 3, -1,  4, NOT_A_TRIANGLE);
  32.    COMPARE( 4,  3, -1, NOT_A_TRIANGLE);
  33.    COMPARE( 2,  4,  6, NOT_A_TRIANGLE);
  34.    COMPARE( 1,  3,  2, NOT_A_TRIANGLE);
  35.    COMPARE( 3,  1,  2, NOT_A_TRIANGLE);
  36.    COMPARE( 1,  2,  4, NOT_A_TRIANGLE);
  37.    COMPARE( 1,  4,  2, NOT_A_TRIANGLE);
  38.    COMPARE( 4,  1,  2, NOT_A_TRIANGLE);
  39.    COMPARE( 0,  0,  0, NOT_A_TRIANGLE);
  40.    COMPARE( 0,  0,  4, NOT_A_TRIANGLE);
  41.    COMPARE( 0,  4,  0, NOT_A_TRIANGLE);
  42.    COMPARE( 4,  0,  0, NOT_A_TRIANGLE);
  43.    COMPARE( 3,  3,  7, NOT_A_TRIANGLE);
  44.    COMPARE( 3,  7,  3, NOT_A_TRIANGLE);
  45.    COMPARE( 6,  3,  3, NOT_A_TRIANGLE);
  46.    COMPARE(-3, -4, -5, NOT_A_TRIANGLE);
  47.    if PASSED then
  48.       PUT_LINE("Congratulations, you completed the assignment!");
  49.    end if;
  50. end TRITEST;
  51.  
  52. separate(TRITEST)
  53. procedure COMPARE(A, B, C: in INTEGER; RIGHT_ANSWER : in TRIANGLE) is
  54.    package INT_IO is new INTEGER_IO(INTEGER); use INT_IO;
  55.    package TRI_IO is new ENUMERATION_IO(TRIANGLE); use TRI_IO;
  56.    MY_ANSWER : TRIANGLE := TRITYPE(A, B, C);
  57. begin
  58.    if MY_ANSWER /= RIGHT_ANSWER then
  59.       PUT("Sides:");
  60.       PUT(A, WIDTH => 3);
  61.       PUT(B, WIDTH => 3);
  62.       PUT(C, WIDTH => 3);
  63.       PUT("   My answer: ");
  64.       PUT(MY_ANSWER, WIDTH => 14);
  65.       PUT("   Right answer: ");
  66.       PUT(RIGHT_ANSWER);
  67.       NEW_LINE;
  68.       PASSED := FALSE;
  69.    end if;
  70. end COMPARE;
  71.